home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / MediaHandlers.p < prev    next >
Encoding:
Text File  |  1997-08-12  |  13.3 KB  |  339 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        MediaHandlers.p
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT MediaHandlers;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __MEDIAHANDLERS__}
  28. {$SETC __MEDIAHANDLERS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC MediaHandlersIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __TYPES__}
  38. {$I Types.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __COMPONENTS__}
  41. {$I Components.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __MOVIES__}
  44. {$I Movies.p}
  45. {$ENDC}
  46.  
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52.  
  53. CONST
  54.     handlerHasSpatial            = $01;
  55.     handlerCanClip                = $02;
  56.     handlerCanMatte                = $04;
  57.     handlerCanTransferMode        = $08;
  58.     handlerNeedsBuffer            = $10;
  59.     handlerNoIdle                = $20;
  60.     handlerNoScheduler            = $40;
  61.     handlerWantsTime            = $80;
  62.     handlerCGrafPortOnly        = $0100;
  63.     handlerCanSend                = $0200;
  64.  
  65. { media task flags }
  66.     mMustDraw                    = $08;
  67.     mAtEnd                        = $10;
  68.     mPreflightDraw                = $20;
  69.     mSyncDrawing                = $40;
  70.  
  71. { media task result flags }
  72.     mDidDraw                    = $01;
  73.     mNeedsToDraw                = $04;
  74.     mDrawAgain                    = $08;
  75.     mPartialDraw                = $10;
  76.  
  77.     forceUpdateRedraw            = $01;
  78.     forceUpdateNewBuffer        = $02;
  79.  
  80.  
  81. TYPE
  82.     GetMovieCompleteParamsPtr = ^GetMovieCompleteParams;
  83.     GetMovieCompleteParams = RECORD
  84.         version:                INTEGER;
  85.         theMovie:                Movie;
  86.         theTrack:                Track;
  87.         theMedia:                Media;
  88.         movieScale:                TimeScale;
  89.         mediaScale:                TimeScale;
  90.         movieDuration:            TimeValue;
  91.         trackDuration:            TimeValue;
  92.         mediaDuration:            TimeValue;
  93.         effectiveRate:            Fixed;
  94.         timeBase:                TimeBase;
  95.         volume:                    INTEGER;
  96.         width:                    Fixed;
  97.         height:                    Fixed;
  98.         trackMovieMatrix:        MatrixRecord;
  99.         moviePort:                CGrafPtr;
  100.         movieGD:                GDHandle;
  101.         trackMatte:                PixMapHandle;
  102.         inputMap:                QTAtomContainer;
  103.     END;
  104.  
  105.  
  106. CONST
  107.     kMediaVideoParamBrightness    = 1;
  108.     kMediaVideoParamContrast    = 2;
  109.     kMediaVideoParamHue            = 3;
  110.     kMediaVideoParamSharpness    = 4;
  111.     kMediaVideoParamSaturation    = 5;
  112.     kMediaVideoParamBlackLevel    = 6;
  113.     kMediaVideoParamWhiteLevel    = 7;
  114.  
  115.  
  116. TYPE
  117.     dataHandlePtr                        = ^Handle;
  118.     dataHandleHandle                    = ^dataHandlePtr;
  119.  
  120.  
  121.  
  122. { MediaCallRange2 }
  123. { These are unique to each type of media handler }
  124. { They are also included in the public interfaces }
  125.  
  126.  
  127. {**** These are the calls for dealing with the Generic media handler ****}
  128. FUNCTION MediaInitialize(mh: MediaHandler; VAR gmc: GetMovieCompleteParams): ComponentResult;
  129.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  130.     INLINE $2F3C, $0004, $0501, $7000, $A82A;
  131.     {$ENDC}
  132. FUNCTION MediaSetHandlerCapabilities(mh: MediaHandler; flags: LONGINT; flagsMask: LONGINT): ComponentResult;
  133.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  134.     INLINE $2F3C, $0008, $0502, $7000, $A82A;
  135.     {$ENDC}
  136. FUNCTION MediaIdle(mh: MediaHandler; atMediaTime: TimeValue; flagsIn: LONGINT; VAR flagsOut: LONGINT; {CONST}VAR movieTime: TimeRecord): ComponentResult;
  137.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  138.     INLINE $2F3C, $0010, $0503, $7000, $A82A;
  139.     {$ENDC}
  140. FUNCTION MediaGetMediaInfo(mh: MediaHandler; h: Handle): ComponentResult;
  141.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  142.     INLINE $2F3C, $0004, $0504, $7000, $A82A;
  143.     {$ENDC}
  144. FUNCTION MediaPutMediaInfo(mh: MediaHandler; h: Handle): ComponentResult;
  145.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  146.     INLINE $2F3C, $0004, $0505, $7000, $A82A;
  147.     {$ENDC}
  148. FUNCTION MediaSetActive(mh: MediaHandler; enableMedia: BOOLEAN): ComponentResult;
  149.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  150.     INLINE $2F3C, $0002, $0506, $7000, $A82A;
  151.     {$ENDC}
  152. FUNCTION MediaSetRate(mh: MediaHandler; rate: Fixed): ComponentResult;
  153.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  154.     INLINE $2F3C, $0004, $0507, $7000, $A82A;
  155.     {$ENDC}
  156. FUNCTION MediaGGetStatus(mh: MediaHandler; VAR statusErr: ComponentResult): ComponentResult;
  157.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  158.     INLINE $2F3C, $0004, $0508, $7000, $A82A;
  159.     {$ENDC}
  160. FUNCTION MediaTrackEdited(mh: MediaHandler): ComponentResult;
  161.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  162.     INLINE $2F3C, $0000, $0509, $7000, $A82A;
  163.     {$ENDC}
  164. FUNCTION MediaSetMediaTimeScale(mh: MediaHandler; newTimeScale: TimeScale): ComponentResult;
  165.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  166.     INLINE $2F3C, $0004, $050A, $7000, $A82A;
  167.     {$ENDC}
  168. FUNCTION MediaSetMovieTimeScale(mh: MediaHandler; newTimeScale: TimeScale): ComponentResult;
  169.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  170.     INLINE $2F3C, $0004, $050B, $7000, $A82A;
  171.     {$ENDC}
  172. FUNCTION MediaSetGWorld(mh: MediaHandler; aPort: CGrafPtr; aGD: GDHandle): ComponentResult;
  173.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  174.     INLINE $2F3C, $0008, $050C, $7000, $A82A;
  175.     {$ENDC}
  176. FUNCTION MediaSetDimensions(mh: MediaHandler; width: Fixed; height: Fixed): ComponentResult;
  177.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  178.     INLINE $2F3C, $0008, $050D, $7000, $A82A;
  179.     {$ENDC}
  180. FUNCTION MediaSetClip(mh: MediaHandler; theClip: RgnHandle): ComponentResult;
  181.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  182.     INLINE $2F3C, $0004, $050E, $7000, $A82A;
  183.     {$ENDC}
  184. FUNCTION MediaSetMatrix(mh: MediaHandler; VAR trackMovieMatrix: MatrixRecord): ComponentResult;
  185.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  186.     INLINE $2F3C, $0004, $050F, $7000, $A82A;
  187.     {$ENDC}
  188. FUNCTION MediaGetTrackOpaque(mh: MediaHandler; VAR trackIsOpaque: BOOLEAN): ComponentResult;
  189.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  190.     INLINE $2F3C, $0004, $0510, $7000, $A82A;
  191.     {$ENDC}
  192. FUNCTION MediaSetGraphicsMode(mh: MediaHandler; mode: LONGINT; {CONST}VAR opColor: RGBColor): ComponentResult;
  193.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  194.     INLINE $2F3C, $0008, $0511, $7000, $A82A;
  195.     {$ENDC}
  196. FUNCTION MediaGetGraphicsMode(mh: MediaHandler; VAR mode: LONGINT; VAR opColor: RGBColor): ComponentResult;
  197.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  198.     INLINE $2F3C, $0008, $0512, $7000, $A82A;
  199.     {$ENDC}
  200. FUNCTION MediaGSetVolume(mh: MediaHandler; volume: INTEGER): ComponentResult;
  201.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  202.     INLINE $2F3C, $0002, $0513, $7000, $A82A;
  203.     {$ENDC}
  204. FUNCTION MediaSetSoundBalance(mh: MediaHandler; balance: INTEGER): ComponentResult;
  205.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  206.     INLINE $2F3C, $0002, $0514, $7000, $A82A;
  207.     {$ENDC}
  208. FUNCTION MediaGetSoundBalance(mh: MediaHandler; VAR balance: INTEGER): ComponentResult;
  209.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  210.     INLINE $2F3C, $0004, $0515, $7000, $A82A;
  211.     {$ENDC}
  212. FUNCTION MediaGetNextBoundsChange(mh: MediaHandler; VAR when: TimeValue): ComponentResult;
  213.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  214.     INLINE $2F3C, $0004, $0516, $7000, $A82A;
  215.     {$ENDC}
  216. FUNCTION MediaGetSrcRgn(mh: MediaHandler; rgn: RgnHandle; atMediaTime: TimeValue): ComponentResult;
  217.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  218.     INLINE $2F3C, $0008, $0517, $7000, $A82A;
  219.     {$ENDC}
  220. FUNCTION MediaPreroll(mh: MediaHandler; time: TimeValue; rate: Fixed): ComponentResult;
  221.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  222.     INLINE $2F3C, $0008, $0518, $7000, $A82A;
  223.     {$ENDC}
  224. FUNCTION MediaSampleDescriptionChanged(mh: MediaHandler; index: LONGINT): ComponentResult;
  225.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  226.     INLINE $2F3C, $0004, $0519, $7000, $A82A;
  227.     {$ENDC}
  228. FUNCTION MediaHasCharacteristic(mh: MediaHandler; characteristic: OSType; VAR hasIt: BOOLEAN): ComponentResult;
  229.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  230.     INLINE $2F3C, $0008, $051A, $7000, $A82A;
  231.     {$ENDC}
  232. FUNCTION MediaGetOffscreenBufferSize(mh: MediaHandler; VAR bounds: Rect; depth: INTEGER; ctab: CTabHandle): ComponentResult;
  233.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  234.     INLINE $2F3C, $000A, $051B, $7000, $A82A;
  235.     {$ENDC}
  236. FUNCTION MediaSetHints(mh: MediaHandler; hints: LONGINT): ComponentResult;
  237.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  238.     INLINE $2F3C, $0004, $051C, $7000, $A82A;
  239.     {$ENDC}
  240. FUNCTION MediaGetName(mh: MediaHandler; VAR name: Str255; requestedLanguage: LONGINT; VAR actualLanguage: LONGINT): ComponentResult;
  241.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  242.     INLINE $2F3C, $000C, $051D, $7000, $A82A;
  243.     {$ENDC}
  244. FUNCTION MediaForceUpdate(mh: MediaHandler; forceUpdateFlags: LONGINT): ComponentResult;
  245.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  246.     INLINE $2F3C, $0004, $051E, $7000, $A82A;
  247.     {$ENDC}
  248. FUNCTION MediaGetDrawingRgn(mh: MediaHandler; VAR partialRgn: RgnHandle): ComponentResult;
  249.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  250.     INLINE $2F3C, $0004, $051F, $7000, $A82A;
  251.     {$ENDC}
  252. FUNCTION MediaGSetActiveSegment(mh: MediaHandler; activeStart: TimeValue; activeDuration: TimeValue): ComponentResult;
  253.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  254.     INLINE $2F3C, $0008, $0520, $7000, $A82A;
  255.     {$ENDC}
  256. FUNCTION MediaInvalidateRegion(mh: MediaHandler; invalRgn: RgnHandle): ComponentResult;
  257.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  258.     INLINE $2F3C, $0004, $0521, $7000, $A82A;
  259.     {$ENDC}
  260. FUNCTION MediaGetNextStepTime(mh: MediaHandler; flags: INTEGER; mediaTimeIn: TimeValue; VAR mediaTimeOut: TimeValue; rate: Fixed): ComponentResult;
  261.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  262.     INLINE $2F3C, $000E, $0522, $7000, $A82A;
  263.     {$ENDC}
  264. FUNCTION MediaSetNonPrimarySourceData(mh: MediaHandler; inputIndex: LONGINT; dataDescriptionSeed: LONGINT; dataDescription: Handle; data: UNIV Ptr; dataSize: LONGINT; asyncCompletionProc: ICMCompletionProcRecordPtr; transferProc: ProcPtr; refCon: UNIV Ptr): ComponentResult;
  265.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  266.     INLINE $2F3C, $0020, $0523, $7000, $A82A;
  267.     {$ENDC}
  268. FUNCTION MediaChangedNonPrimarySource(mh: MediaHandler; inputIndex: LONGINT): ComponentResult;
  269.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  270.     INLINE $2F3C, $0004, $0524, $7000, $A82A;
  271.     {$ENDC}
  272. FUNCTION MediaTrackReferencesChanged(mh: MediaHandler): ComponentResult;
  273.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  274.     INLINE $2F3C, $0000, $0525, $7000, $A82A;
  275.     {$ENDC}
  276. FUNCTION MediaGetSampleDataPointer(mh: MediaHandler; sampleNum: LONGINT; VAR dataPtr: Ptr; VAR dataSize: LONGINT; VAR sampleDescIndex: LONGINT): ComponentResult;
  277.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  278.     INLINE $2F3C, $0010, $0526, $7000, $A82A;
  279.     {$ENDC}
  280. FUNCTION MediaReleaseSampleDataPointer(mh: MediaHandler; sampleNum: LONGINT): ComponentResult;
  281.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  282.     INLINE $2F3C, $0004, $0527, $7000, $A82A;
  283.     {$ENDC}
  284. FUNCTION MediaTrackPropertyAtomChanged(mh: MediaHandler): ComponentResult;
  285.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  286.     INLINE $2F3C, $0000, $0528, $7000, $A82A;
  287.     {$ENDC}
  288. FUNCTION MediaSetTrackInputMapReference(mh: MediaHandler; inputMap: QTAtomContainer): ComponentResult;
  289.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  290.     INLINE $2F3C, $0004, $0529, $7000, $A82A;
  291.     {$ENDC}
  292.  
  293. FUNCTION MediaSetVideoParam(mh: MediaHandler; whichParam: LONGINT; VAR value: INTEGER): ComponentResult;
  294.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  295.     INLINE $2F3C, $0008, $052B, $7000, $A82A;
  296.     {$ENDC}
  297. FUNCTION MediaGetVideoParam(mh: MediaHandler; whichParam: LONGINT; VAR value: INTEGER): ComponentResult;
  298.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  299.     INLINE $2F3C, $0008, $052C, $7000, $A82A;
  300.     {$ENDC}
  301. FUNCTION MediaCompare(mh: MediaHandler; VAR isOK: BOOLEAN; srcMedia: Media; srcMediaComponent: ComponentInstance): ComponentResult;
  302.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  303.     INLINE $2F3C, $000C, $052D, $7000, $A82A;
  304.     {$ENDC}
  305. FUNCTION MediaGetClock(mh: MediaHandler; VAR clock: ComponentInstance): ComponentResult;
  306.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  307.     INLINE $2F3C, $0004, $052E, $7000, $A82A;
  308.     {$ENDC}
  309. FUNCTION MediaSetSoundOutputComponent(mh: MediaHandler; outputComponent: Component): ComponentResult;
  310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  311.     INLINE $2F3C, $0004, $052F, $7000, $A82A;
  312.     {$ENDC}
  313. FUNCTION MediaGetSoundOutputComponent(mh: MediaHandler; VAR outputComponent: Component): ComponentResult;
  314.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  315.     INLINE $2F3C, $0004, $0530, $7000, $A82A;
  316.     {$ENDC}
  317. FUNCTION MediaSetSoundLocalizationData(mh: MediaHandler; data: Handle): ComponentResult;
  318.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  319.     INLINE $2F3C, $0004, $0531, $7000, $A82A;
  320.     {$ENDC}
  321. FUNCTION MediaFixSampleDescription(mh: MediaHandler; index: LONGINT; desc: SampleDescriptionHandle): ComponentResult;
  322.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  323.     INLINE $2F3C, $0008, $0532, $7000, $A82A;
  324.     {$ENDC}
  325.  
  326.  
  327.  
  328.  
  329. {$ALIGN RESET}
  330. {$POP}
  331.  
  332. {$SETC UsingIncludes := MediaHandlersIncludes}
  333.  
  334. {$ENDC} {__MEDIAHANDLERS__}
  335.  
  336. {$IFC NOT UsingIncludes}
  337.  END.
  338. {$ENDC}
  339.